Auto-configuration of routes between neighbor devices

ABSTRACT

In some embodiments, a method inserts, by a first computing device, a first value for a capability in a first message that is used in a process to automatically exchange capability values with a second computing device. The first value for the capability indicates the first computing device requires a default route to reach the second computing device as a next hop for sending a packet to a destination. The first computing device sends the first message to the second computing device; and receives a second value for the capability in a second message from the second computing device. The second value indicating the second computing device will send the default route to reach the second computing device. When the default route is received from the second computing device, the first computing device stores the default route from the second computing device in a route table.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/684,355 filed Mar. 1, 2022, which is a continuation of U.S. patentapplication Ser. No. 17/008,781 filed Sep. 1, 2020, now U.S. Pat. No.11,265,246 and claims the benefit under 35 U.S.C. 119(a)-(d) to ForeignApplication No. 202041027620 filed in India all entitled“AUTO-CONFIGURATION OF ROUTES BETWEEN NEIGHBOR DEVICES”, on Jun. 29,2020, all of which are incorporated by reference herein in theirentireties for all purposes.

BACKGROUND

An access device may be coupled to a number of gateways. In someexamples, the access device and gateways use a routing protocol, such asborder gateway protocol, to exchange routing information. The accessdevice and gateways exchange routing information when discoveringneighbors (e.g., peers) on network segments. For example, an accessdevice requires routing information to reach the gateways that arecoupled to the access device as a next hop. In some examples, the accessdevice only requires a default route (e.g., 0.0.0.0/0) to reach eachgateway. The gateways may receive other more specific routes to reachother devices, but the access device does not require those specificroutes. For example, one situation where the access only needs a defaultroute is when the access device can use any one of multiple gateways toreach a destination. A routing strategy, such as equal cost multipath(ECMP), may be used in which the access device can select any of thegateways to reach a destination. When this routing strategy is used, theaccess device only requires a default route (e.g., 0.0.0.0/0) to reacheach gateway. For example, when a default route is used to route apacket, the access device may select one of the gateways to reach thatdestination. Thus, the access device requires only the default routefrom each gateway, and not receiving the specific routes from thegateways reduces the amount of routes that are stored in a routing tableand also reduce communication in a network.

Typically, the gateways advertise only the default route to the accessdevice using two methods. In a first method, the default route isconfigured in each gateway and then the gateway is manually configuredto advertise only the default route for the access device. In a secondmethod, the default route is configured in each gateway manually andthen the access device is manually configured to advertise a filter,such as an outbound route filter (ORF), to each gateway that wouldfilter routes other than the default route from being sent to the accessdevice. Both methods require manual configuration of either the gatewaysor the access device. When there is a large number of gateways, themanual configuration may be complex and time-consuming.

BRIEF DESCRIPTION OF THE DRAWINGS

With respect to the discussion to follow and in particular to thedrawings, it is stressed that the particulars shown represent examplesfor purposes of illustrative discussion, and are presented in the causeof providing a description of principles and conceptual aspects of thepresent disclosure. In this regard, no attempt is made to showimplementation details beyond what is needed for a fundamentalunderstanding of the present disclosure. The discussion to follow, inconjunction with the drawings, makes apparent to those of skill in theart how embodiments in accordance with the present disclosure may bepracticed. Similar or same reference numbers may be used to identify orotherwise refer to similar or same elements in the various drawings andsupporting descriptions. In the accompanying drawings:

FIG. 1 depicts a simplified system for configuring devices in a networkaccording to some embodiments.

FIG. 2 depicts a logical example of system where an access deviceoperates as an edge services gateway (ESG) according to someembodiments.

FIG. 3 depicts an example of routing tables according to someembodiments.

FIG. 4 depicts a logical example of system where the access deviceoperates as a load balancer (LB) according to some embodiments.

FIG. 5 depicts a simplified flowchart of a method for configuringgateways and the access device with a capability value according to someembodiments.

FIG. 6 depicts a simplified flowchart of a method for performing thecapability exchange process at a gateway according to some embodiments.

FIG. 7 depicts a simplified flowchart of a method for performing thecapability exchange process at the access device according to someembodiments.

FIG. 8 depicts an example of an Open message that includes a capabilityparameter according to some embodiments.

FIG. 9 depicts a simplified flowchart of a method for configuring aroute advertisement setting at the gateway according to someembodiments.

FIG. 10 depicts a simplified flowchart of a method for configuring aroute advertisement setting at the access device according to someembodiments.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerousexamples and specific details are set forth to provide a thoroughunderstanding of embodiments of the present disclosure. Some embodimentsas expressed in the claims may include some or all of the features inthese examples, alone or in combination with other features describedbelow, and may further include modifications and equivalents of thefeatures and concepts described herein. Note that some explanationsherein, may reflect a common interpretation or abstraction of actualprocessing mechanisms. Some descriptions may abstract away complexityand explain higher level operations without burdening the reader withunnecessary technical details of well understood mechanisms. Suchabstractions in the descriptions herein should not be construed aslimiting in any way.

Routing protocols, such as border gateway protocol, are used by networkdevices to exchange routing and reachability information. Theinformation may advertise routes to reach destinations via next hops.The routing protocols may use a process that allows network devices toautomatically discover neighbors on network segments and exchange theroutes to reach destinations without being manually configured tocommunicate. This process may include multiple parts, such as neighbordiscovery and then opening of a session to exchange routing information.Some embodiments leverage part of the process to configure networkdevices, such as gateways and an access device, to advertise routes in adesired way through a capability exchange. In contrast to theBackground, the process does not require the manual configuration ofgateways or access devices to specifically communicate with each otherto configure the settings to advertise routes. For example, in contrastto the two methods in the Background, the gateways do not need to beconfigured to advertise only a default route to a specific access deviceor an access device does not need to be configured to specificallycommunicate with a gateway to advertise a filter to use. Rather, acapability value is set in the gateways and a capability value is set inthe access device that defines the desired configuration to advertiseroutes in each of the respective gateways and the access device.

Then, the gateways and access device can communicate the capabilities toconfigure the settings for route advertisement. For example, thegateways and the access device insert respective capability values todefine routing information to advertise within messages that areexchanged in the process in which the gateways and the access deviceopen a session between themselves. However, the exchange of capabilitiesmay occur at other times and may not be part of opening the session. Theautomatic communication of the capabilities does not require configuringgateways and access devices to communicate with each other specificallyto configure the route advertisement settings.

To configure the desired route advertisement settings, the gateways areconfigured with a first capability value that is set to a first value of“default route originate”, which indicates a device that sent themessage sends only the default route to the device that receives themessage. Also, the access device is configured with the secondcapability value that is set to a second value of “default routereceive”, which indicates only a default route should be received fromthe device that sent the message. In some embodiments, to communicatethe capability value, the capability value for a gateway and an accessdevice may be set in a capability parameter that is defined in aprotocol to negotiate various capabilities to be used in a sessionbetween a gateway and an access device. However, the capabilities may becommunicated via other methods.

Upon a gateway receiving a message from the access device with thecapability value set to the value of “default route receive”, thegateway may configure itself to only send the default route to theaccess device that is identified in the message, and not any specificroutes. Also, when the access device receives a message from a gatewaywith the capability value set to “default route originate”, the accessdevice knows that this gateway will only send the default route to reachthe gateway (and not any specific routes) to the access device. Also,the access device can send specific routes to the gateway when thegateway sends this capability value. If the above capability values arecommunicated between the gateway and the access device, the gateway andthe access device can confirm the configuration of the gateway foradvertising the default route to the access device and the configurationof the access device for sending specific routes to the gateway iscorrect. The gateway and the access device thus perform theconfiguration process that is required without having to manuallyconfigure the communication between the access device and the gateway toconfigure the route advertisement settings. The automatic configurationmay leverage part of the process to discover neighbors and open asession to exchange routing information.

System Overview

FIG. 1 depicts a simplified system 100 for configuring devices in anetwork according to some embodiments. System 100 includes one or moregateways 102-1 to 102-3 (collectively gateways 102) and an access device104. Although three gateways are shown, different numbers of gatewaysmay be used, such as one or more gateways. Gateways 102 and accessdevice 104 may be network devices that route packets on networksegments. For example, gateways 102 and access device 104 may be layer 3routers. Gateways 102 and access device 104 include hardware resourcesincluding computer processor resources (not shown) memory resources (notshown) and input/output resources, including physical network interfaces(“PNICs”) (not shown) that are used to route the packets. Gateways 102may be the next hop layer 3 device for access device 104. For example,when access device 104 sends a packet to reach a destination, gateways102 are the next hop to route the packet. Similarly, when gateways 102send a packet to reach a destination, access device 104 is a next hop toroute the packet.

The system depicted in FIG. 1 is simplified and other configurations mayexist, such as any network configuration in which devices discoverneighbors on network segments and require route advertisement settingsmay be used. For example, any network configuration where automaticdiscovery between devices occurs and in which only a default route needsto be communicated to a device may be appreciated. Some examples ofpossible network configurations include when access device 104 is anedge services gateway or when access device 104 is a load balancer. Moredetailed descriptions of different network configurations of system 100are described below, such as in FIG. 2 and FIG. 3 .

In a desired configuration, access device 104 may only require a defaultroute from gateways 102, and gateways 102 require specific routes fromaccess device 104. The default route is a route that defines a packetforwarding rule to use when no specific route can be determined for agiven destination address of a packet. All packets for destinations notestablished in the routing table are sent via the default route. Whenusing a longest prefix match to find a route in a route table, thedefault route may match when the shortest prefix length is used, such aprefix length of zero. A specific route is when a match occurs with aprefix length greater than the shortest possible. In some examples usinga routing protocol of IPv4, the default route is 0.0.0.0/0 and aspecific route may be 10.10.1.0/24. While IPv4 addressing is describedhereby way of example, the principles described herein may be adaptedfor any Layer 3 addressing scheme, including IPv6.

Gateway 102-1 to gateway 102-3 include routing protocol applications108-1 to 108-3 and access device 104 includes a routing protocolapplication 108-4. Routing protocol applications use a protocol toestablish routing protocol sessions with the routing protocolapplications on other devices to exchange routes for networkreachability. That is, the routes specify next hops for destinations.The routes that are received may be inserted into route tables that areused to route packets to destinations via next hops.

Routing protocol applications 108 can perform a process to discoverneighboring devices (e.g., peers) on network segments as defined by aprotocol, such as link layer discovery protocol (LLDP), BGP (e.g.,router advertisement (RA) or BGP hello messages), but other protocolsmay be used. During the process, gateways 102 and access device 104 areset to auto discover neighbors on network segments, such as the next hoplayer 3 device. The process periodically sends messages, such as BGPHELLO messages, on interfaces on which BGP neighbor auto discovery areenabled. A peer that receives the HELLO messages may then establish asession that enables exchange of routing information between theneighbors such that each neighbor can reach each other. Althoughdifferent parts of the process to discover neighbors and open a sessionare described when capability exchange occurs, it will be understoodthat capability exchange may occur during any time that capabilitynegotiation occurs and is not limited to session establishment.

During the capability exchange process, access device 104 and gateways102 negotiate their respective capability for advertising routes betweeneach other. For example, the capability value may be inserted in acapability parameter in messages sent in the process to establish asession, such as in an OPEN message in BGP. The capability may indicatethe configuration of how a respective device will advertise routes. Inthe process, routing protocol application 108-1 in gateway 102-1 mayreceive a capability value of the second value of “default routereceive” from routing protocol application 108-4 in access device 104.Routing protocol application 108-1 then configures gateway 102-1 to onlysend the default route to access device 104. Also, routing protocolapplication 108-1 sends the capability value of gateway 102-1, such asthe first value of “default route originate”, to routing protocolapplication 108-4 of access device 104. Routing protocol application108-4 checks the capability value to determine if gateway 102 isconfigured to only send the default route. For example, if gateway 102sent a capability value other than “default route originate”, thenrouting protocol application 108-4 may raise an exception that gateway102 is not configured with the correct capability. If routing protocolapplication 108-4 receives the capability of “default route originate”,routing protocol application 108-4 knows that gateway 102 will only sendthe default route and access device 104 can send the specific routes togateway 102. Routing protocol application 108-4 can also set a filter toaccept the default route and reject other routes from gateway 102.

The above configuration of capabilities happens automatically betweengateways 102 and access device 104. Accordingly, gateways 102 do notneed to be manually configured to set the default route originateconfiguration for access device 104. Alternatively, access device 104does not need to be manually configured to communicate with each gateway102 to have a filter set at gateway 102 to filter all routes except thedefault route. The above capability exchange automatically sets theconfiguration for a gateway 102 and the configuration for access device104. Accordingly, a large amount of manual configuration is avoidedusing a capability value exchange for configuring the advertisement ofthe correct routes.

As discussed above, multiple network configurations may be appreciated.The following describes a first network configuration for an edgeservices gateway and a second configuration for a load balancer, butother configurations may be appreciated.

Edge Services Gateway

The following illustrates the use of default routes and specific routesin the edge services gateway configuration. Access device 104 uses arouting strategy, such as equal cost multipath routing (ECMP), to selecta path to send a packet for a flow (e.g., a flow between a source and adestination) as a next hop. Here, the destination of the packet may bereached via any of gateways 102-1 to 102-3. The routing strategy may usea process to load balance flows across the paths to optimize bandwidthused across the paths. To use ECMP, access device 104 only needs adefault route from each gateway 102. The default route is thenassociated with multiple IP addresses for gateways 102-1 to 102-3. Whenaccess device 104 does not find a specific route, access device 104determines the default route is matched and that multiple next hopaddresses (e.g., the IP addresses for gateways 102) are associated withthe default route. Access device 104 then uses the routing strategy toselect one of the IP addresses to send the packet. In some embodiments,the flow may be associated with this IP address such that all packetsfor the flow are sent through a specific gateway 102, but this may notbe necessary. Once any gateway 102 receives the packet, that gateway 102then sends the traffic to the next hop required to reach the destinationof the packet. In the other direction, network traffic is routed througha gateway 102 to access device 104, which then forwards the packet backto the original source of the flow.

FIG. 2 depicts a logical example of system 100 where access device 104operates as an edge services gateway (ESG) according to someembodiments. In some embodiments, access device 104 may be running in asite 200, which may be a data center. Gateways 102 may be the next hopfor access device 104 to reach external network 208. Gateways 102 may beexternal to site 200 as shown, but may also be within site 200, such asin a top of the rack (TOR) server, that is used to reach externalnetwork 208. In both cases, gateways 102 are the next hop for accessdevice 104 to reach external network 208. An edge services gateway mayroute traffic, which may be referred to as north/south traffic, fromworkloads 202 to gateways 102. The edge services gateway may beimplemented in different ways, such as in a workload running in a host,or on bare metal in a server. Hosts include hardware resources includingcomputer processor resources (not shown) memory resources (not shown)and input/output resources, including physical network interfaces(PNICs”) (not shown). Hosts may also run virtualization software (e.g.,a hypervisor) that host workloads.

Workloads may refer to virtual machines that are running on a respectivehost, but this is one example of a virtualized computing instance orcompute node. Any suitable technology may be used to provide a workload.A workload may be a virtual machine or a container (e.g., running on topof a guest operating system or a host operating system without the needfor a hypervisor or separate operating system or implemented as anoperating system level virtualization) or other similar technologies. Inthe case of a virtual machine, the workload may also be a completecomputation environment containing virtual equivalents of the hardwareand software components of a physical computing system. Also, as usedherein, the term “hypervisor” may refer generally to a software layer orcomponent that supports the execution of multiple workloads. Although avirtualized environment is described, some embodiments may be used in anenvironment that is not virtualized. Also, the term “workload” may referto a host that is not virtualized.

Workloads may be located on different network segments (e.g., Layer 2segments or subnets). For example, a first subnet is assigned a range ofIP addresses of “10.10.1.0/24” and a second subnet is assigned a rangeof IP addresses of “10.20.1.0/24. Distributed logical router 204 mayroute traffic between workloads in different subnets or betweenworkloads 202 and access device 104. Distributed logical router mayinclude a distributed component that is distributed across hosts runningworkloads 202. Further details of logical routers and logical switchesare described in U.S. Pat. No. 9,369,426, entitled “DISTRIBUTED LOGICALL3 ROUTING”, filed Aug. 17, 2012, which claims priority to U.S.provisional application No. 61/524,754, filed on Aug. 17, 2011, U.S.provisional application No. 61/643,753394, filed on May 6, 2012, U.S.provisional application No. 61/654,121, filed on Jun. 1, 2012, and U.S.provisional application No. 61/666,876, filed on Jul. 1, 2012, all whichare incorporated by reference in their entirety. Another exampleimplementation of this type of logical router architecture is describedin detail in U.S. Pat. No. 9,787,605, granted Oct. 10, 2017, which isalso incorporated herein by reference in its entirety. Even thoughdistributed logical router 204 is discussed, router 204 may not usevirtualization.

In some configurations, each gateway 102 is coupled to access device 104via an interface. For example, gateway 102-1 includes an interface withan IP address of “172.10.1.1” that is coupled to access device 104 at aninterface with the IP address of “172.10.1.2”. Gateway 102-2 includes aninterface with an IP address of “172.20.1.1” that is coupled to accessdevice 104 at an interface with the IP address of “172.20.1.2”. Also,gateway 102-1 includes an interface with an IP address of “172.30.1.1”that is coupled to access device 104 at an interface with the IP addressof “172.30.1.2”. It is noted that different connections between accessdevice 104 and gateways 102 may be used, such as there may be multipleconnections to one gateway 102.

In some embodiments, the workloads may communicate with externaldestinations (e.g., client devices or external devices) outside of thesite 200. Any of gateways 102 may be used to reach the destination. Asdiscussed above, access device 104 may use a routing strategy, such asequal cost multipath routing, to select a path to send a packet for aflow as a next hop. Here, the destination of the packet may be reachedvia any of gateways 102-1 to 102-3.

Gateway 102-1 to gateway 102-3 may have a route table 206-1 to 206-3,respectively, to route packets to destinations via Layer 3. Route tables206-1 to 206-3 may store specific routes to reach devices via externalnetwork 208. For example, route tables 206-1 to 206-3 may store specificroutes to reach other routers. For example, gateways 102 may receive aspecific route of “200.1.2.0/24->200.1.2.1”. The specific routeindicates a next hop of a device with the address of “200.1.2.1”.Gateways 102 use the next hop when routing a packet to a destination inthe subnet of “200.1.2.0/24”. Gateways 102 store the specific routes inrespective route tables 206.

Access device 104 includes a route table 206-4 that is used to routepackets to destinations via Layer 3. As discussed above, gateways 102require the specific routes to route packets to the workloads 202, butaccess device 104 does not require the specific routes from gateways102. Rather, access device 104 only requires a default route fromgateways 102.

FIG. 3 depicts an example of routing tables 206 according to someembodiments. Route tables 206-1 to 206-3 include similar entries suchthat access device 104 can reach any destination via each gateway 102.For example, a specific route for the range of IP addresses“200.1.2.0/24” includes a next hop of an IP address of “25.10.1.1”. TheIP address of “25.10.1.1” is the next hop to reach a device in thesubnet for the range of IP addresses of “200.1.2.0/24”. Gateways 102 mayreceive the route via a routing process with the next hop device, via aprocess between themselves, or another way.

Gateways 102 also include specific routes for the subnets coupled toaccess device 104. For example, access device 104 advertises thespecific routes to gateways 104. Since gateways 104 are connected todifferent interfaces of access device 104, the specific routes aredifferent. Route table 206-1 includes specific routes for the subnets“10.10.1.0/24” and “10.20.1.0/24” to the IP address of “172.10.1.2.Route table 206-2 includes specific routes for the same subnets to theIP address of “172.20.1.2” and route table 206-3 includes specificroutes for the same subnets to the IP address of “172.20.1.2”. Usingroute tables 206-1 to 206-3, respective gateways 102-1 to 102-3 canroute packets to the next hop of access device 104 for packets that havea destination in the subnets “10.10.1.0/24” and “10.20.1.0/24”.

Access device 104 includes the default route of “0.0.0.0/0”, whichincludes the next hop of IP addresses “172.10.1.1/24, 172.20.1.1/24,172.30.1.1/24” for gateways 102-1 to 102-3. When the default route ismatched, access device 104 may use the routing strategy (e.g., ECMP) toselect one of the gateways 102 as the next hop. When access device 104receives a packet with a destination of “200.1.2.1”, access device 104sends the packet to one of gateways 102 using the routing strategy.Access device 104 does not need the specific route of“200.1.2.0/24->25.10.1.1” from gateways 102 for the packet to be routedto the destination because any gateway 102 can route the packet to thenext hop of “25.10.1.1”. Accordingly, gateways 102 may not be configuredto not send the specific routes to access device 104 to avoidunnecessary entries in route table 206-4 and unnecessary communication.Gateways 102 and access device 104 can be configured such that gateways102 only send a default route to access device 104 using the capabilityvalue exchange as described herein.

Load Balancer

Also, access device 104 may be a load balancer that performs loadbalancing for the workloads. FIG. 4 depicts a logical example of system100 where access device 104 operates as a load balancer (LB) accordingto some embodiments. Access device 104 may be installed parallel to edgeservices gateway 402. For example, access device 104 may be installed onhosts, such as in a workload, in an edge rack that is running edgeservices gateway 402. Edge services gateway 402 may perform similarfunctions as described above in FIG. 2 to route packets to and fromworkloads 202. Although access device 104 and edge services gateway 402are described as separate devices, in other embodiments, access device104 may perform functions of edge services gateway 402, or may becombined with edge services gateway 402. In these cases, access device104 may perform some routing functions and receives only the defaultroute from gateways 102. Access device 104 may load balance flowsbetween workloads 400. For example, when a packet for a flow is receivedfor a service, such as a web server, access device 104 may select one ofworkload 400 to process the flow for the packet.

In some embodiments, access device 104 processes north-south trafficflows. That is, clients (not shown) may send packets via externalnetwork 208 to access device 104 via path 404. To enable the sending ofpackets to access device 104, access device 104 may distribute specificroutes to one or more gateways 102 (not shown) that are the next hop foraccess 104 to reach external network 208. In some embodiments, accessdevice 104 may distribute virtual routes to gateways 102 that arespecific routes to reach access device 104. Then, gateways 102 use thevirtual routes to send traffic to access device 104. Upon receiving thetraffic, access device 104 selects which workload 400 should process thetraffic using a load balancing process. Access device 104 sends thetraffic to the selected workload at another address for the workload viaa path 406. For example, access device 104 may select the workload atthe IP address of 10.30.1.21 to process the flow. Alternatively, accessdevice 104 may select the workload at the IP address of 10.30.1.22 toprocess the flow, such as if the load of the other workload is higher.

When workloads 400 send traffic in the south-north direction, thepackets are sent through edge services gateway 402 via a path 408. Thatis, the south-north traffic does not go through access device 104. Thesouth-north traffic may be sent as described in FIG. 2 .

Accordingly, access device 104 may not route south-north traffic. Inthis configuration, access device 104 may not need to receive specificroutes from gateways 102 because access device 104 is not routingsouth-north packets to gateways 102. However, access device 104advertises specific routes to gateways 102 such that gateways 102 cansend north-south traffic to access device 104. The configuration to onlysend the default route to access device 104 avoids unnecessary entriesin route table 206-4 and unnecessary communication. It is noted thataccess device 104 might not need the default route from gateways 102 atall because access device 104 does not need to reach gateways 102. Inthis case, further capabilities may be defined to cause gateways 102 tonot send any routes while access device 104 sends specific routes. Inthis case, gateways 102 may set a filter to not send any routes.However, the exchange of capabilities as discussed herein may be used tosend specific routes from access device 104 to gateways 102 and receivea default route from gateways 102 at access device 104.

The above configurations may use the following capabilities to set thedesired configuration to advertise routes.

Initial Configuration of Capability

To configure the above behavior to advertise routes, gateways 102 andaccess devices 104 may be initially configured with the appropriatecapability value. A management system (not shown) may perform theconfiguration. FIG. 5 depicts a simplified flowchart 500 of a method forconfiguring gateways 102 and access device 104 with a capability valueaccording to some embodiments. At 502, the management system maydetermine a capability value to apply for route advertisement during theautomatic discovery process for gateways 102. As discussed above,gateways 102 may be configured with a capability value of a first valueof “default route originate”, which may be a value of “1”.

At 504, the management system may send a command to gateways 102 withrespective capability value and also set routing protocol applications108 in gateways 102 to perform the capability exchange process. Forexample, the management system may broadcast a command each gateway 102.This allows the configuration of the capability value on each routingprotocol application 108 with a single command, but individual commandsfor specific gateways 102 may also be used. This configuration may beperformed before the automatic discovery process starts.

At 506, the management system determines a capability value to apply forroute advertisement during the capability exchange process for accessdevice 104. As discussed above, the capability value may be set to asecond value of “2” for the capability of “default route receive”. At508, the management system sends a command to routing protocolapplication 108-4 of access device 104 with the respective capabilityvalue and configures routing protocol application 108-4 to perform thecapability exchange process.

Routing protocol applications 108 store the respective capabilityparameter value that is received from the management system for use inthe capability exchange process. This initial configuration of thecapacity values does not configure routing protocol applications 108 tocommunicate with specific gateways 102 or access devices 104. Theconfiguration of the route advertisement settings depends on theautomatic capability exchange of neighbors on network segments asdiscussed below.

Capability Communication

FIG. 6 depicts a simplified flowchart 600 of a method for performing thecapability exchange process at gateway 102 according to someembodiments. At 602, routing protocol application 108 at gateway 102configures the capability value for route advertisement upon receivingthe capability configuration command. When configured to automaticallydiscover neighbors, gateway 102 may discover neighbors on a networksegment and open a session to exchange information about reachablenetworks, which may include the routes to use in addition to othernetwork attributes. Although the following process is described, theautomatic capability exchange may occur at other times. At 604, gateway102 may open a session with access device 104, which is a TransferControl Protocol (TCP) session, but may use other protocols. At 606,gateway 102 generates a message to open a session with access device 104to communicate information about gateway 102. For example, BorderGateway Protocol uses an Open message to communicate information aboutgateway 102, such as the version of BGP being used, an IP address ofgateway 102, and other information about the connection. The informationin the Open message is required to be negotiated and accepted by bothgateway 102 and access device 104 before any routing information can beexchanged. When generating the message, at 608, routing protocolapplication 108 in gateway 102 may insert the capability value in theOpen message for setting the route advertisement configuration. Forexample, routing protocol application 108 in gateway 102 inserts thefirst value of “1” in a capability parameter of the Open message to setthe capability value of “default route originate” for gateway 102. Insome embodiments, the Open message includes a capability parameter inwhich capabilities of a respective device could be inserted. Although anOpen message is discussed, the capability value may be inserted in othermessages, and at other times during a communication between gateway 102and access device 104. At 610, routing protocol application 108 ingateway 102 sends the message to access device 104.

A routing protocol application 108-4 in access device 104 may alsogenerate an Open message that includes information required by thenegotiation to open the session with gateway 102. FIG. 7 depicts asimplified flowchart 700 of a method for performing the capabilityexchange process at access device 104 according to some embodiments. At702, routing protocol application 108-4 at access device 104 configuresthe capability value for the route advertisement upon receiving thecapability configuration command. At 704, routing protocol application108-4 at access device 104 participates in opening the session withgateway 102. At 706, routing protocol application 108-4 at access device104 generates a message to open a session with gateway 102 tocommunicate information about access device 104. For example, routingprotocol application 108-4 at access device 104 also sends an Openmessage with details about access device 104. In the Open message, at708, routing protocol application 108-4 at access device 104 may insertthe capability value in the capability parameter. For example, routingprotocol application 108-4 at access device 104 inserts the first valueof “2” in a capability parameter of the Open message to set thecapability of “default route receive” for access device 104. At 710,routing protocol application 108-4 at access device 104 sends themessage to gateway 102.

FIG. 8 depicts an example of an Open message 800 that includes acapability parameter 802 according to some embodiments. The Open messageis used to open a BGP session and contains information about the devicein a BGP information section 801. The Open message also includes acapability parameter to communicate different capabilities that aresupported to a neighbor. If supported by the neighbor, both neighborsmay use the capability. The parameter may be in the format of a type,length, value of <Capability Code, Capability Length, Capability Value>,but other formats may be used. As shown, a capability parameter 802 mayinclude the values of a capability code 804, a capability length 806,and a capability value 808. Capability code 804 may be a code for theroute advertisement configuration. The capability parameter may be usedto negotiate multiple different capabilities and the capability code isused to distinguish between which capability is being negotiated. Acapability length 806 indicates the length of the capability value of acapability value 808. As discussed above, capability value 808 may berestricted to a value of “1” for default route originate and a value of“2” for default route receive. Although these values are described,other values may be appreciated.

Capability Configuration

FIG. 9 depicts a simplified flowchart 900 of a method for configuring aroute advertisement setting at gateway 102 according to someembodiments. At 902, a routing protocol application 108 in gateway 102receives a message with a capability code for route advertisement froman access device. At 904, routing protocol application 108 in gateway102 determines the capability value in the capability parameter. Then,at 906, routing protocol application 108 in gateway 102 determineswhether the capability value is a first value for “default routeoriginate” or a second value for “default route receive”.

If the capability value is default route originate, at 908, routingprotocol application 108 in gateway 102 may expect the default routefrom access device 104 and not specific routes. In some embodiments,this may not be the desired configuration. In this case, the automaticconfiguration may not work, and at 910, an explicit configuration may bereceived to configure gateway 102 to advertise the default route and notspecific routes.

If the capability value is for “default route receive”, at 912, routingprotocol application 108 in gateway 102 configures a filter to only sendthe default route to access device 104. For example, from the capabilityvalue, gateway 102 knows only to send the default route to access device104. Gateway 102 may be configured with only send the default route tothe identification information (e.g., an IP address) of access device104, but other methods may be used. The configuration may be performedin different ways, such as in software, to not send any specific routes,such as the routes that are received to reach devices in the externalnetwork from being sent to access device 104, from being sent to accessdevice 104. Accordingly, gateway 102 only sends the default route toreach gateway 102 to access device 104. Then, after the connection isestablished, gateway 102 may receive specific routes from access device104.

FIG. 10 depicts a simplified flowchart 1000 of a method for configuringa route advertisement setting at access device 104 according to someembodiments. At 1002, routing protocol application 108-4 at accessdevice 104 receives a message with a capability code for routeadvertisement from a routing protocol application 108 in gateway 102. At1004, routing protocol application 108-4 at access device 104 determinesthe capability value in the capability parameter. Then, at 1006, routingprotocol application 108-4 at access device 104 determines whether thecapability value is a first value for “default route originate” or asecond value for “default route receive”.

At 1008, if the capability value is default route originate, routingprotocol application 108-4 at access device 104 may configure a filterto only accept the default route from gateway 102. If the value isdefault route originate, this means that gateway 102 will only send thedefault route to reach gateway 102 and not specific routes to reach anyexternal devices. Accordingly, access device 104 may set a filter tofilter out any specific routes. In other embodiments, access device 104may not need to perform any action in this case because this is thecapability it expects from gateway 102 to configure route advertisement.Accordingly, after the negotiation is finished, at 1010, access device104 receives a default route from gateway 102. Then, at 1012, accessdevice 104 configures the default route in route table 206-4 to reachgateway 102.

If the capability value is “default route receive”, then this indicatesthat access device 104 should only send the default route and notspecific routes to gateway 102. At 1014, access device 104 configuresitself to only send the default route to gateway 102. However, this maynot be the desired behavior and further actions may be taken. Forexample, at 1016, access device 104 may be explicitly with aconfiguration to send the specific routes.

CONCLUSION

Accordingly, gateway 102 and access device 104 may automaticallycommunicate to configure settings for the advertisements of routes usingcapability values. The configuration of capability values for accessdevice 104 and gateways 102 may be performed; however, an administratordoes not need to specifically configure an access device to communicatewith a specific gateway, or vice versa, to configure the routeadvertisement settings. That is, gateway 102 does not need to bespecifically configured on how to advertise routes with a specificaccess device, or access device 104 does not need to be specificallyconfigured to send the correct filter to gateway 102. The negotiationmay be performed during an automatic capability exchange process, whichwill set the route advertisement configuration correctly between accessdevice 104 and gateway 102. Accordingly, manual intervention aftersetting the capability values for access device 104 and gateway 102 maybe avoided. When an access device 104 communicates with multiplegateways 102, avoiding manual configuration is time saving and alsoreduces errors.

Many variations, modifications, additions, and improvements arepossible, regardless the degree of virtualization. The virtualizationsoftware can therefore include components of a host, console, or guestoperating system that performs virtualization functions. Pluralinstances may be provided for components, operations or structuresdescribed herein as a single instance. Finally, boundaries betweenvarious components, operations and data stores are somewhat arbitrary,and particular operations are illustrated in the context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within the scope of the disclosure(s). Ingeneral, structures and functionality presented as separate componentsin exemplary configurations may be implemented as a combined structureor component. Similarly, structures and functionality presented as asingle component may be implemented as separate components.

Some embodiments described herein can employ variouscomputer-implemented operations involving data stored in computersystems. For example, these operations can require physical manipulationof physical quantities—usually, though not necessarily, these quantitiestake the form of electrical or magnetic signals, where they (orrepresentations of them) are capable of being stored, transferred,combined, compared, or otherwise manipulated. Such manipulations areoften referred to in terms such as producing, identifying, determining,comparing, etc. Any operations described herein that form part of one ormore embodiments can be useful machine operations.

Further, one or more embodiments can relate to a device or an apparatusfor performing the foregoing operations. The apparatus can be speciallyconstructed for specific required purposes, or it can be a genericcomputer system selectively activated or configured by program codestored in the computer system. In particular, various general purposemachines may be used with computer programs written in accordance withthe teachings herein, or it may be more convenient to construct a morespecialized apparatus to perform the required operations. The variousembodiments described herein can be practiced with other computer systemconfigurations including handheld devices, microprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

Yet further, one or more embodiments can be implemented as one or morecomputer programs or as one or more computer program modules embodied inone or more non-transitory computer readable storage media. The termnon-transitory computer readable storage medium refers to any datastorage device that can store data which can thereafter be input to acomputer system. The non-transitory computer readable media may be basedon any existing or subsequently developed technology for embodyingcomputer programs in a manner that enables them to be read by a computersystem. Examples of non-transitory computer readable media include ahard drive, network attached storage (NAS), read-only memory,random-access memory, flash-based nonvolatile memory (e.g., a flashmemory card or a solid state disk), a CD (Compact Disc) (e.g., CD-ROM,CD-R, CD-RW, etc.), a DVD (Digital Versatile Disc), a magnetic tape, andother optical and non-optical data storage devices. The non-transitorycomputer readable media can also be distributed over a network coupledcomputer system so that the computer readable code is stored andexecuted in a distributed fashion.

Finally, boundaries between various components, operations, and datastores are somewhat arbitrary, and particular operations are illustratedin the context of specific illustrative configurations. Otherallocations of functionality are envisioned and may fall within thescope of embodiments. In general, structures and functionality presentedas separate components in exemplary configurations can be implemented asa combined structure or component. Similarly, structures andfunctionality presented as a single component can be implemented asseparate components.

These and other variations, modifications, additions, and improvementsmay fall within the scope of the appended claims(s). As used in thedescription herein and throughout the claims that follow, “a”, “an”, and“the” includes plural references unless the context clearly dictatesotherwise. Also, as used in the description herein and throughout theclaims that follow, the meaning of “in” includes “in” and “on” unlessthe context clearly dictates otherwise.

The above description illustrates various embodiments of the presentdisclosure along with examples of how aspects of the present disclosuremay be implemented. The above examples and embodiments should not bedeemed to be the only embodiments, and are presented to illustrate theflexibility and advantages of the present disclosure as defined by thefollowing claims. Based on the above disclosure and the followingclaims, other arrangements, embodiments, implementations and equivalentsmay be employed without departing from the scope of the disclosure asdefined by the claims.

What is claimed is:
 1. A method comprising: inserting, by a gatewaydevice, a first value for a capability in a first message that is usedin a process to automatically exchange capability values with a gatewaydevice, wherein the first value for the capability indicates the gatewaydevice requires a default route to reach the access device as a next hopfor sending a packet to a destination; sending, by the gateway device,the first message to the access device; receiving, by the gatewaydevice, a second value for the capability in a second message from theaccess device, the second value indicating the access device will onlyreceive the default route from the gateway device; and storing thedefault route in a route table.